/*

 * Copyright 2008 Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires.  All Rights Reserved

 * Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires Proprietary and Confidential.

 *

 * You agree to use Your best efforts to protect the software and documentation

 * from unauthorized copy or use. The software source code represents and embodies

 * trade secrets of Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires and/or its licensors.

 * The source code and embodied trade secrets are not licensed to you and any modification,

 * addition or deletion is strictly prohibited. You agree not to disassemble, decompile,

 * or otherwise reverse engineer the software in order to discover the source code and/or

 * the trade secrets contained in the source code.

 *

 *

 * Derecho de autor 2008 Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires.  Todos los derechos reservados.

 * Propiedad de Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires y Confidencial.

 *

 * Por la presente acuerdo hacer mi mayor esfuerzo para proteger el software y la documentaci�n

 * de la copia o el uso no autorizados. El c�digo fuente del software representa e incluye

 * secretos comerciales de Direcci�n Provincial de Inform�tica de la Provincia de Buenos Aires y/o sus licenciantes. 

 * No se le otorga licencia del c�digo fuente ni los secretos comerciales incluidos;

 * y cualquier modificaci�n, agregado o eliminaci�n se encuentra estrictamente prohibida.

 * Asimismo, por la presente me comprometo a no desarmar, descompilar, o de alguna forma utilizar

 * t�cnicas de ingenier�a inversa sobre el software para descubrir su fuente y/o los

 * secretos comerciales contenidos en el c�digo fuente.

 *

 */
package jmc.core.service;


import java.util.List;

import com.ibm.as400.access.AS400;

import jmc.core.model.Pdirch06;
import jmc.core.model.Pdmpro01;
import jmc.core.model.Pdproc;
import jmc.core.model.Tfunid01;
import jmc.core.model.Usuario;
import jmc.core.model.reports.DataSectoresSelected;
import jmc.core.model.reports.Inventario;
import jmc.core.model.reports.InventarioResumen;
import jmc.core.model.reports.InventarioResumenTemp;
import jmc.core.model.reports.Irregularidad;
import jmc.core.model.reports.OpunViun;
import jmc.core.model.reports.Prefacturacion;
import jmc.core.model.reports.SectoresSelected;
import jmc.core.model.reports.Seguimiento;
import jmc.core.model.reports.UnidIrregularidad;

import jmc.util.exception.GenericDataAccessException;

/**
 * @author Juan Manuel Carrascal
 *
 */
public interface PdiManager {
	
		public List<OpunViun> getStatusUnidad(String serie, short clie) throws GenericDataAccessException;	
		
		public List<Pdproc> getPdiUnidad(String serie, short clie) throws GenericDataAccessException;
		
		public Tfunid01 getUnidByPK(String serie)throws GenericDataAccessException;
	
		public List<Pdirch06> getPdiIrregularidades(String serie, short clie) throws GenericDataAccessException;
		
		public List<Inventario> getInventarioAll(Usuario usuario);
		
		public void callThreadD00008(String jobActual, Usuario usuario);
		
		public boolean isEndProgram(String jobActual);

		public List<Pdmpro01> getProcesosPDIAll();

		public List<Pdmpro01> getProcesosPDI();
		
		public List<Pdmpro01> getProcesosPDIAllVW();

		public List<Pdmpro01> getProcesosPDIVW();

		public List<Inventario> getInventarioByProceso(Usuario usuario,
				String tipoProceso);
		
		public void callThreadPd0018(String secuencia,String proceso, String dateDesde, String dateHasta, Usuario usuario);

		public List<Prefacturacion> getPrefacturacion(String secuencia);

		public List<Irregularidad> getPdiIrregularidadesBySeries(Usuario usuario);

		public List<Irregularidad> getPdiIrregularidadesBySeries(
				Usuario usuario, String mpsect);
		
		

		public void callThreadPd0022(String secuencia, String mpsect,
				String dateDesde, String dateHasta, Usuario usuario);

		public List<UnidIrregularidad> getUnidIrregularidad(String secuencia);

		public void callThreadPd0041(String secuencia, String dateDesde,
				String dateHasta, Usuario usuario);

		public List<Seguimiento> getSeguimiento(String secuencia);

		public List<Irregularidad> getPdiIrregularidadesBySerie(
				Usuario usuario, String serie);

		public DataSectoresSelected getSectoresSelected(Usuario usuario, String vin);
		
		public Tfunid01 getUnidByVin(String vin) throws GenericDataAccessException;

		public String getProcesoByPK(String sector)throws GenericDataAccessException;

		public void setSectoresSelected(String vin, String sector, String paliss, Usuario usuario) throws Exception;


		public List<InventarioResumen> getInventarioResumen(Usuario usuario);

		public List<Pdmpro01> getProcesosPDIAllVWSTodos();

		public List<InventarioResumenTemp> getInventarioResumenTemp(
				Usuario usuario, String proceso);

		public List<Inventario> getInventarioByProcesoPais(Usuario usuario,
				String tipoProceso, String pais);

		public List<Inventario> getInventarioGroupPaisSinProcesar(
				Usuario usuario, String pais);

		public List<Inventario> getInventarioGroupPaisOk(Usuario usuario,
				String pais);

		public List<Inventario> getInventarioGroupPaisEnProceso(
				Usuario usuario, String pais);

		public List<InventarioResumen> getInventarioResumen(Usuario usuario,
				String[] paisesSelected);

		public List<InventarioResumenTemp> getInventarioResumenTempSolo(
				Usuario usuario, String proceso);

		public List<Inventario> getInventarioByProcesoPaisSolo(Usuario usuario,
				String tipoProceso, String pais);

		public List<Inventario> getInventarioAllOmit(Usuario usuario);

		public List<Inventario> getInventarioAllIncl(Usuario usuario);

		public List<Inventario> getInventarioByProcesoOmit(Usuario usuario,
				String tipoProceso);

		public List<Inventario> getInventarioByProcesoIncl(Usuario usuario,
				String tipoProceso);
}
